package com.hyt.it.ogt.ykcj.service.exam;

import com.hyt.it.ogt.ykcj.domain.param.EnterpriseScoreLineListParam;
import com.hyt.it.ogt.ykcj.domain.param.EnterpriseScoreLineSaveParam;

import java.util.List;

/**
 * 企业招聘考试分数线设置服务
 * 
 * @author admin
 * @date 2021-09-09
 */
public interface IEnterpriseExamScoreLineSettingService
{
    /**
     * 创建、修改分数线,返回是否冲突
     */
    void createScoreLine(EnterpriseScoreLineSaveParam enterpriseScoreLineSaveParam);

    /**
     * 分数线列表
     * @param examId
     * @param dimension ""则查全部，0查考试，1查科目
     * @return
     */
    List<EnterpriseScoreLineSaveParam> getScoreLineList(String examId, String dimension, String subjectId);

    /**
     * 分数线列表
     * @param examId
     * @param dimension ""则查全部，0查考试，1查科目
     * @return
     */
    EnterpriseScoreLineListParam getScoreLineVOList(String examId, String dimension, String subjectId);

    /**
     * 删除分数线
     * @param id
     * @return
     */
    void deleteScoreLineById(String id);

    /**
     * 批量保存（不考虑冲突情况）
     * @param enterpriseExamInsertParamList
     */
    void saveBatch(List<EnterpriseScoreLineSaveParam> enterpriseExamInsertParamList);

    /**
     * 根据删除科目id
     * @param subjectId
     */
    boolean deleteScoreLineBySubjectId(String subjectId);

    /**
     * 根据考试id、类型查询id集合
     * @param examId
     * @param composite
     * @return
     */
    List<String> selectScoreLineIds(String examId,String composite,String dimension);

    /**
     * 根据考试id、类型查询id集合
     * @param subjectId
     * @param composite
     * @return
     */
    List<String> selectScoreLineIds(String examId,String composite, String dimension, String subjectId);

    /**
     * 批量创建
     * @param enterpriseScoreLineListParam
     * @return
     */
    void createScoreLineBatch(EnterpriseScoreLineListParam enterpriseScoreLineListParam);

    /**
     * 同步成绩通过不通过状态
     */
    void gradeStatusSync(String examId, String dimension);


    /**
     * 追加复合分数线
     * @param enterpriseScoreLineSaveParam
     */
    void addToScoreLine(EnterpriseScoreLineSaveParam enterpriseScoreLineSaveParam);

}
